iT邦幫忙

2022 iThome 鐵人賽

DAY 30
0
自我挑戰組

30天HackerRank 1 Month Preparation Kit系列 第 30

Day 30 Merge two sorted linked lists 用Javascript

  • 分享至 

  • xImage
  •  

題目

解題想法

function mergeLists(head1, head2) {
    // handle empty list 
    if(!head1 || !head2){
        return head1 || head2;
    }
    
    let sortedHead;
    let leftNode =head1;
    let rightNode = head2;
    
    // set newHead
    if(head1.data <= head2.data){
        sortedHead = head1;
        leftNode = leftNode.next;
    } else{
        sortedHead = head2;
        rightNode = rightNode.next;
    }
 
    // merging
    let sortedCurrentNode = sortedHead;
    while(leftNode && rightNode){
        if(leftNode.data <= rightNode.data){
            sortedCurrentNode.next = leftNode;
            leftNode = leftNode.next;
        }
        else{
            sortedCurrentNode.next = rightNode;
            rightNode = rightNode.next;
        }
        sortedCurrentNode=sortedCurrentNode.next;
    }
  
    // apending the remainders
    while(leftNode){
        sortedCurrentNode.next = leftNode;
        leftNode=leftNode.next;
        sortedCurrentNode=sortedCurrentNode.next;
    }

    while(rightNode){
        sortedCurrentNode.next = rightNode;
        rightNode=rightNode.next;
        sortedCurrentNode=sortedCurrentNode.next;
    }
   
    return sortedHead;

}

結果


上一篇
Day29 Reverse a doubly linked list用Golang
系列文
30天HackerRank 1 Month Preparation Kit30
圖片
  直播研討會
圖片
{{ item.channelVendor }} {{ item.webinarstarted }} |
{{ formatDate(item.duration) }}
直播中

尚未有邦友留言

立即登入留言